2022 年 7 月。彼得進來剛好兩年。
那天早上他比平常早到。八點不到,辦公室裡只有零星幾個人。他沒有開電腦,先去倒了一杯咖啡——不是三合一了,是上個月貝姬搬進來的一台二手義式咖啡機,團隊集資買的。機器很舊,出來的咖啡有一點酸,但比奶精的味道好太多。
他端著咖啡,站在辦公室中間。
兩年前他第一天站在同一個位置的時候,聞到的是紙張、灰塵、和沒人清過濾網的空調。現在那些味道還在——這棟三十年的大樓不會因為換了幾個人就變新——但上面多了別的東西。咖啡的酸香。新筆電的塑膠味。白板筆的氣味。
還有一種他說不太出來的東西。一種⋯⋯運轉的感覺。
他走到右邊,大尚的維運區。牆上多了一個螢幕——一個大尚自己接的監控牆,上面是 Zabbix 的總覽。一整排綠燈。彼得看了一會兒。兩年前,「伺服器有沒有問題」這個問題的答案是「有人打電話來才知道」。現在是這面牆。綠的就是好的。紅的會自己跳出來。
他走到左邊,貝姬的 Sprint Room。白板上的便利貼換了一輪又一輪。最上面貼著一張紙,是芬妮上週印的——D365 的第一個正式模組上線了。受助家庭的基本資料查詢,從外包商的考古現場,變成了團隊自己寫的、有測試、有版本控制的東西。外包商還在,但主導權已經換了手。以前是廠商說「這個做不到」,現在是團隊說「這個我們自己來」。
彼得在那張紙前面站了很久。
不是因為那個模組多了不起——技術上它很普通。是因為它代表的東西。兩年前,這個團隊連 Git 都沒用過。
那天中午,他去見老喬。
不是星巴克了。老喬說他膩了星巴克,最近喜歡天母一間更小的店——一間開在二樓、要爬一段窄樓梯上去的咖啡館。店裡只有六張桌子,老闆是一個話很少的中年人,煮咖啡的時候很專心,像在做一件嚴肅的事。
老喬已經坐在靠窗的位置。他面前是一杯手沖,旁邊放著一本書——彼得瞄了一眼書脊,是一本講系統思考的舊書,英文的,書角都翻爛了。
「兩年了。」老喬說。沒有寒暄。
「兩年了。」
「說說看。」老喬把書闔上。「兩年前你帶著 47 個問題來找我。現在呢?」
彼得想了一下,決定不用報告的方式說。他換了老喬的語言。
「約束打開了幾個。」他說。
老喬的眉毛動了一下。彼得知道他喜歡這個說法——用約束的語言,而不是用 KPI 的語言。
「幾個?」
「三個。」彼得說。「技術的——備份、監控、上雲,連機房都殺掉了,搬家那個週末 IT 沒有人加班。人力的——貝姬、大尚到位,新的開發團隊長出來了,原生 IT 也有人開始轉。流程的——Sprint、standup、版本控制、文件化,這些變成習慣了。」
「三個約束。」老喬重複。「都打開了。」
「都打開了。」彼得說。然後他停了一下,補了一句:「至少看起來是。」
老喬沒有接話。他端起咖啡,喝了一口,看著窗外。窗外是天母的巷子,七月的陽光把行道樹的影子曬得很短。
彼得等著他說「做得好」,或者「不錯」。
老喬沒有。
「你記得我教你的第五步嗎?」老喬終於開口。
「回到第一步。」彼得說。「約束被打開以後,新的約束會出現。永遠有新的約束。」
「對。」老喬說。「那你告訴我——現在的約束在哪裡?」
彼得張了張嘴,想回答,卻發現自己答不上來。
技術的約束打開了。人力的約束打開了。流程的約束打開了。按照 TOC 的邏輯,他應該能指出下一個瓶頸在哪裡——是預算?是某個特定的系統?是某個跨部門的卡點?
但他心裡那個微妙的不安,不指向任何一個具體的地方。
「我不知道。」他老實說。「我感覺得到有東西不對。但我指不出來。」
老喬點了點頭。彼得本來以為他會失望——一個學了兩年約束理論的人,居然指不出約束在哪裡。但老喬的表情不是失望。是別的東西。像是一個老師等到了他一直在等的那個答案。
「你指不出來,」老喬說,「是因為下一個約束,不是用算的。」
彼得愣住。
「約束理論很強。」老喬說。「找產能的瓶頸——機器不夠快、人手不夠、流程卡住、預算不足——這些我幫你算,十拿九穩。」
他把咖啡杯放下。
「但下一個約束,不在機器裡,也不在流程裡。」
「在哪裡?」
老喬看著他。窗外的蟬叫了起來。
「恐懼。」老喬說。「人的恐懼。組織的恐懼。我的工具看得到它——我可以把它攤在紙上畫給你看:他們抗拒,不是因為愚蠢,是因為在他們的算盤上,改變的風險比好處大。這個我畫得出來。但是彼得——畫得出來,不等於化得開。邏輯是必要的,但不充分。恐懼這種東西,你贏了辯論,它還在。它要的不是更利的刀。我這把刀磨了三十年,教不了你這個。」
彼得沉默了很久。
他想起這兩年裡那些他沒有完全看懂的時刻。Tony 離職前那個欲言又止的眼神。葛姐在會議上問備份進度時那種「不太像關心」的語氣。某些處長在 DX 委員會上點頭,但點頭的方式讓彼得覺得他們其實沒有要做。人資處長面試時壓低聲音說「你不要來」。
這些都不是產能問題。這些是別的東西。
「所以,」彼得慢慢地說,「我接下來會撞到的牆,不是技術的牆。」
「不是。」
「是人的牆。」
「是系統的牆。」老喬糾正他。「不是某一個人。是整個系統怎麼對待恐懼。這個東西,比任何一台老伺服器都難修。因為它沒有 log,沒有監控,沒有 Dashboard。它藏在每一次『再討論看看』、每一次『這個我們慢慢來』、每一次微笑底下。」
彼得的胃又是那種感覺。幾個月前那個下午第一次感覺到的——站在一棟剛粉刷好的房子裡,聞到一股說不出來的氣味。
「你準備好了。」老喬說。
彼得抬頭。
「技術的、人力的、流程的——這三關你過了。我能教你的,到這裡。」老喬的語氣很平,但彼得聽出了裡面的鄭重。「但下一段路,我幫不了你。你需要另一雙眼睛。」
「另一雙眼睛?」
「找約束要用眼睛,聞恐懼要用鼻子。」老喬說。「我是眼睛——很利,但眼睛只看得到攤在桌上的東西。你接下來要面對的,要用鼻子。我認識一個有鼻子的人。」
「誰?」
老喬沒有立刻回答。他低頭,從那本舊書裡抽出一張紙片——像是早就準備好的。上面寫著一個名字、一個地址。字跡不是老喬的,是另一個人的,更圓、更慢。
「時候到了,他會出現。」老喬說。「現在還不到。你要先撞一次牆,撞得夠痛,才聽得進他要說的話。」
彼得接過那張紙片。他沒有看——他把它折好,放進皮夾。很多年以後他才會打開它。
那天下午回到辦公室,一切都很正常。
貝姬在 Sprint Room 帶 review。大尚在機房裝一台新的伺服器。維志在他旁邊,這次是維志的手放在鍵盤上,大尚在看。孟樑把一台監控用的 SNMP 設定弄好了,正得意地跟維志報告。安娜和芬妮在爭論一個 API 的回傳格式,聲音不大,但很投入。
Polar 的第一階段——線上捐款的信用卡自動化——上週剛上線。系統穩定。捐款進得來。沒有出事。
D365 進入愛期會主導。資安基線建起來了。雲端遷移的第一批伺服器搬上去了。
一切都在好轉。每一個指標都是綠的。
彼得坐在位子上,看著這一切,心裡卻有一個聲音,越來越清楚。
老喬的話在他腦子裡迴盪:你準備好了,但系統準備好了嗎?
他打開備忘錄,想寫點什麼,最後只打了一行:
三個約束打開了。但我指不出下一個在哪裡。
老喬說:恐懼。TOC 算不出來的東西。
他看著那行字,很久。然後關上筆電。
窗外的天空是藍的。七月的台北,午後的雷陣雨還沒來,但空氣裡有一種悶。那種你知道雨要來、但還沒來的悶。氣壓很低。蟬叫得很急。
辦公室裡很安靜。是那種一切都運轉得很好的安靜。
但彼得知道——他現在才開始懂——最安靜的時候,往往是離暴風雨最近的時候。
他不知道暴風雨會以什麼形式來。他只知道它會來。
三個禮拜後,它來了。
是凌晨的一通電話。
那通電話之後,彼得用 TOC 的眼睛看了整整一夜,什麼都看不出來。他這才想起老喬說的——你要先撞一次牆。